排序算法之冒泡排序(C/C++)

void BubbleSort(int nArr[], int nLen)
{
	for (int i = 0; i < nLen-1; ++i)
	{
		for (int j = 0; j <nLen-1-i; j++)
		{
			if (nArr[j]>nArr[j+1])
			{
				int nTemp = nArr[j];
				nArr[j] = nArr[j+1];
				nArr[j+1] = nTemp;
			}
		}
	}
}

結果:從小到大排列
解析:第一層循環表示一共要冒泡的次數(即需要排序nLen-1個元素),當有三個元素的時候應該冒泡兩次,故爲i<nLen-1
第二層循環爲對比的元素次數,第一次需要對比數組索引從0~nLen - 1,需要對比的次數爲nLen - 1 - 0次
第二次需要對比數組索引從0~nLen-1-1,需要對比的次數爲nLen-1-1次
第三次需要對比數組索引從0~nLen-1-2,需要對比的次數爲nLen-1-2次,故爲i<nLen-1-i

時間複雜度
空間複雜度:無需額外空間O(1)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章